package com.pinyoumei.component;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

@Component
@Slf4j
public class JedisSingleClient {

	 @Autowired  
	 private JedisPool jedisPool; 
	 
	 public String set(String key, String value) {
		//获取jedis连接
		Jedis jedis=null;
		try {
			jedis = jedisPool.getResource();
			String result=jedis.set(key, value);
			return result;
		} catch (Exception e) {
			log.info("缓存服务器连接异常！");
		}finally{
			//关闭连接
			jedis.close();
		}
		return null;
	 }
	 
	 public String set(String key, String value,int second) {
			//获取jedis连接
			Jedis jedis=null;
			try {
				jedis = jedisPool.getResource();
				String result=jedis.set(key, value);
				jedis.expire(key,second);
				return result;
			} catch (Exception e) {
				log.info("缓存服务器连接异常！");
			}finally{
				//关闭连接
				jedis.close();
			}
			return null;
		 }
	 
	 public String get(String key) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		String result=jedis.get(key);
		//关闭连接
		jedis.close();
		return result;
    }
	 public Long hset(String key, String item, String value) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		Long result=jedis.hset(key,item,value);
		//关闭连接
		jedis.close();
		return result;
	}
	 
	 public String hget(String key, String item) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		String result=jedis.hget(key,item);
		//关闭连接
		jedis.close();
		return result;
	}
	 
	 public Long hdel(String key, String item) {
		Jedis jedis=jedisPool.getResource();
		Long result=jedis.hdel(key,item);
		jedis.close();
		return result;
	 }
	 public Long incr(String key) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		Long result=jedis.incr(key);
		//关闭连接
		jedis.close();
		return result;
	 }
	 public Long decr(String key) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		Long result=jedis.decr(key);
		//关闭连接
		jedis.close();
		return result;
	}
	 
	 /**
     * 设置生存时间
     * @param key
     * @param second
     * @return
     */
	 public Long expire(String key, int second) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		Long result=jedis.expire(key,second);
		//关闭连接
		jedis.close();
		return result;
	 }
	 
	 public Long ttl(String key) {
		//获取jedis连接
		Jedis jedis=jedisPool.getResource();
		Long result=jedis.ttl(key);
		//关闭连接
		jedis.close();
		return result;
	 }
	 
	 
}
